<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Wrapper (Software)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Wrapper_(Software)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Wrapper_Software rootpage-Wrapper_Software skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Wrapper (Software)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Als <b>Wrapper</b> (englisch für „Verpackung“ oder „Umschlag“) oder <b>Adapter</b> (vom lateinischen für „Anpassung“), auch „<a href="Schnittstelle" title="Schnittstelle">Schnittstelle</a>“ genannt, wird in der <a href="Informationstechnik" title="Informationstechnik">Informationstechnik</a> ein Stück Software bezeichnet, welches ein anderes Stück Software umgibt. Dies kann sich sowohl auf ganze Programme als auch nur auf einzelne Programmteile bis -klassen beziehen. Die „Umhüllung“ kann sowohl visueller als auch technischer Natur sein.
</p><p>Wrapper werden aus unterschiedlichen Gründen eingesetzt, zumeist sind das Kompatibilitäts-, Sicherheits- oder <a href="Softwarearchitektur" title="Softwarearchitektur">architektonische</a> Gründe. Beispielsweise sind Wrapper behilflich, wenn Programmteile einer anderen <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> verwendet werden sollen, oder auch um den Zugriff auf bestimmte Programmteile einzuschränken (da das Programm so nur innerhalb des Wrappers läuft).
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2></div>
<dl><dt>TCP-Wrapper</dt>
<dd>Das <a href="Daemon" title="Daemon">Hintergrundprogramm</a> <a href="Inetd" title="Inetd">inetd</a> eines <a href="Unixartiges_System" class="mw-redirect" title="Unixartiges System">unixartigen</a> Computers verarbeitet als TCP-Wrapper eingehende <a href="Port_(Protokoll)" class="mw-redirect" title="Port (Protokoll)">Verbindungsanfragen</a>. Der angeforderte <a href="TCP/IP#Bedeutung_der_Protokolle" class="mw-redirect" title="TCP/IP">Netzwerkdienst</a> wird dann der <a href="Konfiguration_(Computer)" title="Konfiguration (Computer)">Konfiguration</a> entsprechend gestattet oder verweigert.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></dd>
<dt><a href="Java_Database_Connectivity" title="Java Database Connectivity">Java Database Connectivity</a> (JDBC)</dt>
<dd>JDBC ist eine <a href="Datenbankschnittstelle" title="Datenbankschnittstelle">Datenbankschnittstelle</a> der <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>-Plattform, die eine einheitliche Schnittstelle zu <a href="Datenbank" title="Datenbank">Datenbanken</a> verschiedener Hersteller bietet. Sie greift intern auf die spezifischen Implementierungen der Hersteller zu, nach außen bietet sie allerdings nur eine allgemeine Funktionalität einer Datenbankschnittstelle an. Sie fungiert somit als Wrapper für den Zugriff auf Datenbanken.</dd>
<dt><a href="Glide_Wrapper" title="Glide Wrapper">Glide Wrapper</a></dt>
<dd>Glide Wrapper sind <a href="Emulator" title="Emulator">Emulatoren</a> der <a href="Voodoo_Graphics" class="mw-redirect" title="Voodoo Graphics">Voodoo-Graphics</a>-Grafikkarten und der <a href="Glide" title="Glide">Glide</a>-<a href="Programmbibliothek" title="Programmbibliothek">Bibliothek</a>, welche als Wrapper zu anderer 3D-Hardware und der Beschleuniger-API <a href="DirectX" title="DirectX">DirectX</a> agieren.</dd></dl>
<dl><dt>GL-Wrapper</dt></dl>
<p>Die GL-Wrapper <code>indirectx</code> von <a href="Feral_Interactive" title="Feral Interactive">Feral Interactive</a>, <code>togl</code> von der <a href="Valve_Corporation" class="mw-redirect" title="Valve Corporation">Valve Corporation</a><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> sowie eON<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> von Virtual Programming werden zur <a href="Portierung_(Software)" title="Portierung (Software)">Portierung</a> von DirectX-Computerspielen zu <a href="OpenGL" title="OpenGL">OpenGL</a> verwendet.
</p>
<div class="mw-heading mw-heading2"><h2 id="Wrapper_als_Entwurfsmuster">Wrapper als Entwurfsmuster</h2></div>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→ </span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="Adapter_(Entwurfsmuster)" title="Adapter (Entwurfsmuster)">Adapter (Entwurfsmuster)</a> und <a href="Decorator" title="Decorator">Decorator</a></i></div>
<p>Die <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientierte Programmierung</a> kennt die <a href="Entwurfsmuster" title="Entwurfsmuster">Entwurfsmuster</a> <i><a href="Adapter_(Entwurfsmuster)" title="Adapter (Entwurfsmuster)">Adapter</a></i> und <i><a href="Decorator" title="Decorator">Dekorator</a></i>, die beide als <i>Wrapper</i> bezeichnet werden.
</p><p>Das <i>Adapter</i> Entwurfsmuster wird zum Verhüllen von zueinander inkompatiblen <a href="Schnittstelle_(Objektorientierung)" title="Schnittstelle (Objektorientierung)">Klassenschnittstellen</a> benutzt. Es wird aber auch, neben dem Entwurfsmuster <a href="Fassade_(Entwurfsmuster)" title="Fassade (Entwurfsmuster)">Fassade</a>, oft für die Implementierung von Wrappern für ganze Programmteile oder fremde Programme verwendet.
</p><p>Ein <i>Dekorator</i> wird dazu verwendet, eine Klasse um zusätzliche Funktionalitäten zu erweitern. Objekte einer Klasse werden dabei von <i>Dekorierern</i> umhüllt. Neue Funktionalitäten werden im <i>Dekorierer</i> implementiert und alte Funktionalitäten werden zu dem umhüllten Objekt <a href="Delegation_(Softwareentwicklung)" title="Delegation (Softwareentwicklung)">delegiert</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.freebsd.org/doc/de/books/handbook/tcpwrappers.html"><i>TCP-Wrapper einrichten.</i></a> <a href="FreeBSD" title="FreeBSD">FreeBSD</a>,<span class="Abrufdatum"> abgerufen am 10. Oktober 2009</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AWrapper+%28Software%29&rft.title=TCP-Wrapper+einrichten&rft.description=TCP-Wrapper+einrichten&rft.identifier=https%3A%2F%2Fwww.freebsd.org%2Fdoc%2Fde%2Fbooks%2Fhandbook%2Ftcpwrappers.html&rft.publisher=%5B%5BFreeBSD%5D%5D"> </span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/ToGL">Github-Repository</a></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.vpltd.com/services/"><i>Services : Virtual Programming.</i></a><span class="Abrufdatum"> Abgerufen am 14. Februar 2017</span> (amerikanisches Englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AWrapper+%28Software%29&rft.title=Services+%3A+Virtual+Programming&rft.description=Services+%3A+Virtual+Programming&rft.identifier=https%3A%2F%2Fwww.vpltd.com%2Fservices%2F&rft.language=en-US"> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2021-11-13" href="https://de.wikipedia.org/wiki/?title=Wrapper_(Software)&oldid=217235510">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>